/**
 * 2010(c) Copyright Oceansoft Information System Co.,LTD. All rights reserved.
 * <p>
 * Compile: JDK 1.6+
 * <p>
 * 版权所有(C)：江苏欧索软件有限公司
 * <p>
 * 公司名称：江苏欧索软件有限公司
 * <p>
 * 公司地址：中国苏州科技城青山路1号
 * <p>
 * 网址: http://www.oceansoft.com.cn
 * <p>
 * 作者: 090922(陈伟)
 * <p>
 * 文件名: com.oceansoft.mobile.econsole.common.spring.JSONPViewResolver.java 
 * <p>
 * 类产生时间: 2014-6-19 0019 下午 13:51
 * <p>
 * 负责人: 090922(陈伟)
 * <p>
 * Email:javacspring@gmail.com
 * <p>
 * 所在组 : 掌上公安应用平台
 * <p>
 * 所在部门: 开发部--手持技术部
 * <p>
 * <p>
 */
package cn.com.oceansoft.nos.common.spring;

import cn.com.oceansoft.business.base.entity.Result;
import com.alibaba.fastjson.JSON;
import org.springframework.web.servlet.view.AbstractView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.util.Map;

/**
 * JSONP视图解析器
 *
 * @author: chenw
 * @time: 2014-6-19 下午 13:51
 */
public class JSONPViewResolver extends AbstractView {

    @Override
    protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
        response.reset();
        response.setContentType("application/json; charset=UTF-8");
        PrintWriter out = response.getWriter();
        String rt = String.format("%s(%s)", request.getParameter("callback"), JSON.toJSONString((Result) model.get("result")));
        System.out.println("\n\n\nJSONP====>" + rt + "\n\n\n");
        out.print(rt);
        out.flush();
        out.close();
    }
}
